home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / gcc / gcc256_2.readme < prev    next >
Text File  |  1993-12-13  |  10KB  |  270 lines

  1. Short: gcc-2.5.6 #2 Optimizing C/C++/Objective-C compiler (C++/ObjC)
  2. Type: dev/gcc
  3. Uploader: hoehle@inf-wiss.uni-konstanz.de
  4. Author: phb@colombo.telesys-innov.fr
  5.  
  6. This directory contains the version 2.5.6 release of the GNU C
  7. compiler.  It includes all of the support for compiling C++ and
  8. Objective C, including a run-time library for Objective C.
  9.  
  10. This is still a beta test release, but aside from the Objective C
  11. run-time, it ought to be close to reliable.
  12.  
  13. The GNU C compiler is free software.  See the file COPYING for copying
  14. permission.
  15.  
  16. =======
  17. WARNING
  18. =======
  19.  
  20. This version of Amiga GCC-2.5.6 should be considered as BETA, as GCC itself
  21. is still BETA since 2.0.
  22. It has succesfully compiled itself 3 times (up to stage 3) and was used to
  23. compile some utilities such as perl and C++ library.
  24.  
  25. Please test it and reports any bugs to:
  26.  
  27.     Philippe BRAND
  28.     Fidonet: Ramses The Amiga Flying BBS 2:320/104.21
  29.     Email:   phb@colombo.telesys-innov.fr
  30.  
  31. =======
  32. History
  33. =======
  34.  
  35. Gcc v2.2.2 port:   Markus Wild
  36. Gcc v2.3.3 port:   Markus Wild
  37. Gcc v2.4.5 port:   Philippe Brand ,Lars Hecking, Fred Fish
  38. Gcc v2.5.0 and up: Philippe Brand, Fred Fish
  39.  
  40. ==========================
  41. What's new in this release
  42. ==========================
  43.  
  44. -Read FSF NEWS file included.
  45. -More internal compiler bugs fixed (see ChangeLogs in gcc sources for details),
  46.  a lot for C++ support.
  47. -Fred Fish seems to have finally found an annoying bug which prevented
  48.  to compile a resident version of GCC, or to compile resident programs. But
  49.  don't try it anyway 'cause there's still lack of library support as for now.
  50. -Man command now works, this one was my fault (well in fact like others ;-),
  51.  fix done by Tom Haiko.
  52. -Infoview works also, it was an internal path problem.
  53. -libamy.a HAS TO BE RENAMED to libamiga.a because new ld won't find libamy.a
  54. -upgrade to new C++ library v2.5.1.
  55.  
  56. =======
  57. Sources
  58. =======
  59.  
  60. This archive should contain everything necessary to get you going, it doesn't
  61. include the sources for ixemul.library (should be available RSN as a different
  62. distribution, or ask Markus Wild), and it doesn't include full sources to gcc.
  63. If you're interested in the sources required to rebuild gcc, get the original
  64. GNU sources (gcc-2.5.6.tar.gz, somewhat 6MB), which should be stored on the
  65. same ftp site you got this binary distribution from (if they're not, tell the
  66. manager of that ftp site, as this is a requirement of the GNU Copyright
  67. LICENSE). Then apply the gcc patch-file in src-patches/, and configure for
  68. `amigados'. Same thing goes for libg++-2.5.1. If you want (ie. you don't have
  69. to) get libg++-2.5.1.tar.gz (again, from the same ftp site you got this
  70. distribution from) and apply the libg++ diff from the src-patches directory,
  71. then configure for amigados and give it a try. Please note that you should
  72. have at least 40MB left or your HD and 8MB of memory minimum in order to
  73. rebuild gcc up to stage3. An accelerated Amiga is welcome, as it took me
  74. 4,5 hours to generate a single pass. So 3 passes makes 4,5 x 3 = 13,5 hours.
  75.  
  76. Sources for other tools only included as binaries are available separately
  77. in self-contained archives (such as for example gnuinfo-920712.lha for
  78. InfoView).
  79.  
  80. =====
  81. Where
  82. =====
  83.  
  84. **** GCC 2.2.2, 2.3.3, 2.4.5, 2.5.2, 2.5.3, 2.5.4 & 2.5.6 are available on:
  85.  
  86. - Aminet sites (wuarchive.wustl.edu and mirrors such as ftp.luth.se)
  87.     in /pub/aminet/dev/gcc
  88.  
  89. - Ramses The Amiga Flying BBS  +33-1-60037015  HST Dual v32 terbo 4800-21600
  90.                                +33-1-60037713  SupraFax v32bis    4800-14400
  91.                                +33-1-60037716  Tornado v22bis     1200-2400
  92.     in Topic Development, Area Gcc
  93.  
  94.  
  95. **** GNU source code is available on:
  96.  
  97. - gnu.prep.ai.mit.edu 18.71.0.38
  98.     in /pub/gnu
  99.  
  100. - Ramses The Amiga Flying BBS
  101.     in Topic AmigaUnix/Unix/Linux/NetBSD, Areas Gnu
  102.  
  103. ======
  104. Layout
  105. ======
  106.  
  107. WARNING: Locations of files have changed from 2.4.5 to conform FSF tree.
  108. WARNING2: g++-include directory has moved to /lib/g++-include
  109.  
  110. Gcc-2.5.6 is splited into 4 archives:
  111.  
  112. gcc256-1.lha    basic gcc distribution, all what you need to begin is there.
  113. gcc256-2.lha    C++, Objective-C binaries, headers and libraries.
  114. gcc256-3.lha    documentation in man & TexInfo formats, includes InfoView & man
  115. gcc256-4.lha    extra binaries in /usr/bin (UN*X utilities).
  116.  
  117. gcc25xto256.lha    update from 2.5.x to 2.5.6, in case you already have 2.5.x.
  118.  
  119. Name            What                    Where    
  120. ----            ----                    -----
  121.  
  122. COPYING            GNU LICENSE, read!!            All archives
  123. README.2.5.6        this file                All archives
  124. NEWS_gcc-2.5.6        What's new in gcc-2.5.6            gcc256-1.lha
  125. NEWS_libg++-2.5.1    What's new in libg++-2.5.1        gcc256-1.lha
  126. Installer        Commodore installer utility        gcc256-1.lha
  127. GCC-Install        Installer script to configure gcc    gcc256-1.lha
  128. InfoView        this is a viewer for .info-* files as
  129.             you find them in info/. Please read    gcc256-3.lha
  130. InfoView.info        thru this README before trying to use    gcc256-3.lha
  131.             it, you need to setup some things for
  132.             it to work!
  133. envarc/            global environment variables you should
  134.             have set when using this programming    gcc256-1.lha
  135.             environment
  136. include/        non-amiga specific C/C++ headers    gcc256-1.lha
  137. os-include/        amiga specific C/C++ headers. Add    gcc256-1.lha
  138.             Commodore headers!!        
  139. os-lib/            amiga specific libraries        gcc256-1.lha
  140. lib/g++-include/    C++ headers (for libg++)        gcc256-2.lha
  141. info/            manuals for the compiler, libg++, etc.    gcc256-3.lha
  142. ixpipe/            a pipe handler needed by the library    gcc256-1.lha
  143. libauto/        experimental lib to open shared libs    gcc256-1.lha
  144.             at startup
  145. dev/            empty as for now, but needed.        gcc256-1.lha
  146. libs/            ixemul.library and ixemul.trace        gcc256-1.lha
  147. rexx/            ARexx wrappers for gcc and g++        gcc256-1.lha
  148. src-patches/        source patches                gcc256-1.lha
  149. etc/            this is /etc, and contains a config    gcc256-1.lha
  150.             file for `man'
  151. lib/            normal (not base relatives) libraries    gcc256-1.lha
  152.                                 gcc256-2.lha
  153. lib/gcc-lib/        home of compilers called by gcc        gcc256-1.lha
  154.                                 gcc256-2.lha
  155. bin/            this is /bin, and contains all         gcc256-1.lha
  156.             binaries of this distribution that    gcc256-2.lha
  157.             are meant to be directly invoked by    gcc256-3.lha
  158.             the user (contrary to the executables    gcc256-4.lha
  159.                  in compilers/, that are meant to be
  160.             invoked by a driver program like gcc)
  161. geninline/        Perl scripts to generate inline headers    gcc256-1.lha
  162.             and -lamy glue
  163. man/            this is the root for tons of man pages    gcc256-3.lha
  164.  
  165. ==============
  166. Inline-Headers
  167. ==============
  168.  
  169. Since I'm not able to redistribute amiga header files, you will have to get
  170. them directly from Commodore, unless you're an official registrated Amiga
  171. developper. In order to generate inline-headers, follow these steps (provided
  172. amiga headers and fd files are in os-include). You don't have to generate them
  173. if you use OS3.1 (40.13 headers).
  174.  
  175. CLI> Assign INCLUDE: GCC:os-include
  176. CLI> Assign FD: INCLUDE:fd
  177. CLI> Makedir INCLUDE:inline
  178. CLI> cd USR:bin/geninline
  179. CLI> gen31
  180.  
  181. This will create all inline-headers. If you have 2.0 headers, use gen20
  182. instead, if you have 3.0, use gen30, if you have 6.4, send it to me ;-)
  183.  
  184. NOTE: perl scripts do not handle correctly AmigaDOS include files, which
  185. seems to mean they are somewhat broken. If someone could work on this...
  186.  
  187. ============
  188. Installation
  189. ============
  190.  
  191. 1) If this is your first installation of GCC:
  192.  
  193. CLI> cd Disk_with_lot_space:
  194. CLI> lha x gcc256-x.lha (where x stands for 1 through 4).
  195.  
  196. Now from the Workbench, invoke GCC-Install. This is what people wanted, e.g.
  197. an Installer based configuration script for GCC.
  198.  
  199. Thus you only have to unpack archives and the installer script will do the
  200. rest, creating environment variables, adding assigns to user-startup, copy
  201. library and handler.
  202.  
  203. BTW:
  204.  
  205. Installer and Installer project icon
  206. (c) Copyright 1991-93 Commodore-Amiga, Inc.  All Rights Reserved.
  207. Reproduced and distributed under license from Commodore.
  208.  
  209.  
  210. 2) If you "upgrade" your gcc environment from v2.x.x, well just erase
  211.    gcc directory then go back to step 1. Too many stuff have changed. Just
  212.    make sure you've backuped all what you've added to the GCC tree before.
  213.  
  214. Note that you MUST use ixemul.library revision 45 and NOT revision 47, has
  215. the latter doesn't check for ENV:
  216.      
  217. =====
  218. ARexx
  219. =====
  220.  
  221. The provided ARexx scripts have been contributed by Loren J. Rittle.
  222. If you like ARexx, they're an alternate way of calling gcc. They 
  223. automatically make sure you're using a large enough stack setting, and 
  224. enable you to compile C++ programs with less obscure options. This 
  225. approach is furthermore useful if you're not able to use the g++ /bin/sh
  226. script.
  227.  
  228. ===============
  229. gcc versus gccv
  230. ===============
  231.  
  232. gccv stands for a gcc using vfork() to spawn a new process, and then calling
  233. the new execve() function in ixemul.library to call its subcompilers. Gcc
  234. continues to using the more system friendly RunCommand() function in
  235. dos.library to start subcompilers. Gccv has the advantage of being able to
  236. work with interprocess pipes, thus (provided you have the memory ;-)), you're
  237. able to do
  238.  
  239.     gccv -pipe your_program.c
  240.  
  241. causing the preprocessor (cpp), the C-compiler (cc1) and the assembler (as)
  242. to run at the same time, passing intermediate files thru internal pipes 
  243. instead of using temporary files.
  244.  
  245. As long as you don't want that feature (ok, playing with certain make tools
  246. also requires gccv) you're safe using gcc.
  247.  
  248. ==========
  249. stack size
  250. ==========
  251.  
  252. You need to have a 50.000 stack size in order to compile with GCC. This should
  253. be enough for most projects. Note than while recompiling gcc with itself it
  254. didn't take more than 71KB stack. But stack can grow due to source complexity.
  255. Don't be afraid of it.
  256.  
  257. To use ar and/or ranlib, you should have a much larger stack, between
  258. 200.000 and 300.000, depending on library size.
  259.  
  260. ===========
  261. C++ headers
  262. ===========
  263.  
  264. Because AmigaDOS way of handling filenames, making no difference if
  265. file has capitals or not, you'll certainly run into problems with
  266. some headers, including String.h and normal string.h. My suggestion for
  267. now is to add to C++ "faulty" header filename an "_" in front of it, thus
  268. String.h would become _String.h. Sorry for inconvenience. (thanks to Dirk
  269. Nehring for reminding me this anoying "feature").
  270.